package br.gov.capgov.treinamento.ejb.sessionbeans;

import java.sql.Date;
import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import com.sun.xml.internal.bind.v2.runtime.unmarshaller.XsiNilLoader.Single;

import br.gov.capgov.treinamento.jpa.entidades.ControleDeQuedas;
import br.gov.capgov.treinamento.jpa.entidades.Url;

@Stateless 
public class ControleDeQuedasEJB
{
	@PersistenceContext
	private EntityManager manager;
	
	public List<ControleDeQuedas> procurarControleDeQuedasDeUmaURL(Url url)
	{
		Query query = manager.createQuery("select u from "+ ControleDeQuedas.class.getName() + " as u where url2_id = "+ url.getId() +" ");
		
		try
		{ 
			List<ControleDeQuedas> controleDeQuedas = query.getResultList();		
			return controleDeQuedas;
		}
		catch (NoResultException e)
		{
			return null;
		}		
	}
	
	public void insereControleDeQuedas(ControleDeQuedas  controleDeQuedas)
	{
		manager.persist(controleDeQuedas);	
	}
	
	public void removeControleDeQuedas(Integer id)
	{
		ControleDeQuedas controleDeQuedas = manager.find(ControleDeQuedas.class, id);
		manager.remove(controleDeQuedas);	
	}
	
	public void atualizaControleDeQuedas(ControleDeQuedas controleDeQuedas)
	{
		manager.merge(controleDeQuedas);
	}
	
	public ControleDeQuedas buscaPorData(java.util.Date data, Url url)
	{
		Query query = manager.createQuery("select u from "+ ControleDeQuedas.class.getName() + " as u where data = '"+ data +"' and url2_id="+ url.getId());
		try
		{ 
			ControleDeQuedas controleDeQueda = (ControleDeQuedas) query.getSingleResult();		
			return controleDeQueda;
		}
		catch (NoResultException e)
		{
			return null;
		}
	}	
}